[GitHub]Actionsで非推奨となるset-envとadd-pathへの対応について確認してみた #GitHub
はじめに
Workflowのログを見ていたところ、以下の警告に気が付きました。
The
set-env
command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands
普段はWorkflowの実行結果がグリーンであれば問題なしとしていたための見落としでした。警告の詳細と、具体的な対処についてまとめてみます。
set-envとadd-pathの非推奨化
詳細は以下の記事にあります。
影響するのは変数の追加定義方法となりますが、対処方法はケースに応じて異なります。
- セルフホストでの定義
- Actionを作成する際に用いるToolKit
- Workflowのステップ間共有
以下、具体的にはどうなるのかを並べていきます。
セルフホストでの定義
ホストランナースクリプトの更新が必要になります。v2.273.1以降であれば問題ありません。
EC2で利用する場合には Linux x64 用の以下の手順で行いましょう。
#Create a folder mkdir actions-runner && cd actions-runner #Download the latest runner package curl -O -L https://github.com/actions/runner/releases/download/v2.273.1/actions-runner-linux-x64-2.273.1.tar.gz #Extract the installer tar xzf ./actions-runner-linux-x64-2.273.1.tar.gz
Actionを作成する際に用いるToolkit
@actions/core
をv1.2.6以上にする必要があります。addPathとexportVariableがアップデートされます。
npm install @actions/core@1.2.6
Workflowのステップ間共有
おそらく一番影響範囲が大きいものとなります。
Workflow動作中、ランナーが作成する一時的なファイル群に保存される形になります。UTF-8エンコーディングでの出力が必要です。複数行のコマンドは一つのファイルに複数行で収まる形となります。ですが、利用する上で特殊なファイル操作は発生しません。
set-env
これまでは以下のように記述して利用しました。
- name: Set selected color run: echo '::set-env name=SELECTED_COLOR::green' - name: Get color run: echo 'The selected color is' $SELECTED_COLOR
アップデート後は以下のようになります。
echo "{name}={value}" >> $GITHUB_ENV
- name: Set selected color run: echo "selected_color=green" >> $GITHUB_ENV - name: Get color run: echo 'The selected color is' $selected_color
add-path
これまでは以下のように記述して利用しました。
- name: add path run: echo "::add-path::/path/to/dir"
アップデート後は以下のようになります。
echo "{path}" >> $GITHUB_PATH
- name: add path run: echo "/path/to/dir" >> $GITHUB_PATH
OSでの設定と記述を合わせています。いずれも記述自体はとても分かりやすくなったのではないかと思います。
あとがき
利用状況についてはモニタリングしていくとありますが、将来的には差し替わるとのことです。
新規で作成する場合には新しい方法で行っていくべきですが、旧来の記述となっている箇所の確認はActionsの実行ログで警告が発生しているかどうかで判断するのが確実でしょう。
参考URL
- GitHub Actions: Deprecating set-env and add-path commands - GitHub Changelog - https://github.blog/
- Release v2.273.1 · actions/runner - https://github.com/
- Workflow commands for GitHub Actions - GitHub Docs - https://docs.github.com/
- toolkit/RELEASES.md at main · actions/toolkit - https://github.com/